The present invention relates to the field of computers and specifically to voltage selection for pluggable cards, such as PCMCIA cards, for computers.
Originally, PCMCIA cards operated from a 5 volt supply only. An emerging standard provides for cards that can operate at 3.3 volts only or can operate at either 3.3 volts or 5 volts. Also, a voltage less than 3.3 volts, which is designated x.x volts, has been proposed so that operation can occur at 5 volts, 3.3 volts or x.x volts. The maximum voltage that can be applied to a card is indicated by two connector pins on the card that are connected to the voltage sense (VS) inputs of the socket on the host computer when a card is inserted. It is important not to exceed the maximum voltage or the card may be damaged.
The existing method of controlling card voltage is for control software (software driver) to read the voltage indicated by the VS connector pins, determine the maximum voltage, set bits in a voltage select register to select the desired voltage and then set a power enable bit to connect that voltage to the card. There are three ways that the existing method may cause damage to a low voltage card.
First, it is easy to mistakenly install an incorrect (for example, older) version of control software (for example, a software driver which does not have a correctly-operating voltage select function to provide the proper voltage select function. In the typical case where the voltage selection defaults to a higher voltage (for example, 5 volts), such default can result in a damaging higher voltage being applied to a lower-voltage card. If the register bits used for voltage selection are ones that were previously used by older software for another purpose, the software can erroneously specify a wrong voltage which will damage the card.
Second, if a correctly-operating version of control software is used, but other conditions cause an error (for example, an error due to a system crash), the voltage select bits can be written incorrectly so as to result in damage to the card.
Third, if a higher-voltage card is removed from a socket and a lower-voltage card is installed in its place at a time when the software is unable to react to the card change (for example, when the computer system is in a suspend mode or has crashed), the lower-voltage card can be damaged.
In light of the above background, there is a need to provide improved power control in computer systems particularly for PCMCIA cards of different voltages.